class Solution {
public:
    string modifyString(string s) {
        // 先处理边界情况
        if(s[0] == '?')
            for(char c = 'a'; c <= 'z'; c++)
                if(c != s[1])
                {
                    s[0] = c;
                    break;
                }

        if(s[s.size() - 1] == '?')
            for(char c = 'a'; c <= 'z'; c++)
                if(c != s[s.size() - 2])
                {
                    s[s.size() - 1] = c;
                    break;
                }

        // 再处理数组内的情况
        for(int i = 1; i < s.size() - 1; i++)
            if(s[i] == '?')
                for(char c = 'a'; c <= 'z'; c++)
                    if(c != s[i - 1] && c != s[i + 1])
                    {
                        s[i] = c;
                        break;
                    }

        return s;
    }
};